1. Introduction
Global navigation satellite systems (GNSS) include Global Positioning System (GPS) (United States), GLONASS (Russia), Galileo (Europe), and COMPASS (China) (systems in use or in development). A GNSS typically uses a plurality of satellites orbiting the earth. The plurality of satellites forms a constellation of satellites. A GNSS receiver detects a pseudo-random noise (PRN) code modulated on an electromagnetic signal broadcasted by a satellite. The code is also called a ranging code. Code detection includes comparing the bit sequence modulated on the broadcasted signal with a receiver generated replica of the code to be detected. Based on the detection of the time of arrival of the code for each of a series of the satellites, the GNSS receiver estimates its position. Positioning includes, but is not limited to, geolocation, i.e. the positioning on the surface of the Earth.
An overview of GPS, GLONASS and Galileo is provided for instance in chapters 9, 10 and 11 respectively of Hofmann-Wellenhof B., et al., GNSS, Global Navigation Satellite Systems, GPS, GLONASS, Galileo, & more, Springer-Verlag Wien, 2008, (hereinafter referred to as “reference [1]”), which is herewith incorporated by reference in its entirety.
Positioning using GNSS signal codes provides a limited accuracy, notably due to the resolution of the code determined by its bit rate (or chip rate). For instance, the GPS includes the transmission of a coarse/acquisition (C/A) code with a 1.023 MHz chip rate at a carrier frequency of 1575.45 MHz, the so-called L1 frequency. This code is freely available to the public, in comparison to the Precise (P) code with a 10.23 MHz chip rate, which is reserved for military applications. The accuracy of code-based positioning using the GPS C/A code is approximately 15 meters, when taking into account both the electronic uncertainty associated with the detection of the C/A code (electronic detection of the time of arrival of the pseudorandom code) and other errors including those caused by ionospheric and tropospheric effects, ephemeris errors, satellite clock errors and multipath propagation.
An alternative to positioning based on the detection of a PRN code is positioning based on carrier phase measurements. In this alternative approach or additional approach (ranging codes and carrier phases can be used together for positioning), the carrier phase of the GNSS signal transmitted from the GNSS satellite is detected, not (or not only) the code modulated on the signal transmitted from the satellite.
The approach based on carrier phase measurements has the potential to provide a much greater position precision, i.e. up to centimetre-level or even millimetre-level precision, compared to the code-based approach. The reason may be intuitively understood as follows. The code, such as the GPS C/A code on the L1 band, has a chip length (300 meters for the C/A-code) that is much longer than one cycle of the carrier onto which the code is modulated (19 centimeters for the L1 band). The position resolution may therefore be viewed as greater for carrier phase detection than for code detection.
However, in the process of estimating the position based on carrier phase measurements, the carrier phases are ambiguous by an unknown number of cycles. The phase of a received signal can be determined, but the integer cycles cannot be directly determined in an unambiguous manner. This is the so-called “integer ambiguity problem”, “integer ambiguity resolution problem” or “phase ambiguity resolution problem”.
GNSS observation equations for code observations and for carrier phase observations are for instance provided in reference [1], section 5. An introduction to the GNSS integer ambiguity resolution problem is provided in reference [1], section 7.2.
2. Problem to be Solved
There is a need for improving the implementation of positioning systems based on GNSS carrier phase measurements, to obtain a precise estimation of the receiver position in a quick, stable and computationally efficient manner.